╬πδαΓδσφΦσ

╬Ωφα Φ ΣΦαδεπεΓ√σ ∩αφσδΦ
╬Ωφα Ωδα±±α Frame
╠σφ■ MenuBar
╩δα±± Menu
╩δα±± MenuItem
─ΦαδεπεΓ√σ ∩αφσδΦ
╧≡ΦδεµσφΦσ MenuApp
╚±⌡εΣφ√Θ ≥σΩ±≥
╬∩Φ±αφΦσ ≥σΩ±≥α

    ╬∩Φ±αφΦσ Φ±⌡εΣφεπε ≥σΩ±≥α ∩≡ΦδεµσφΦ  MenuApp

    ╩αΩ ∞√ ≤µσ πεΓε≡ΦδΦ, ∩≡ΦδεµσφΦσ MenuApp ≡αßε≥ασ≥ αΓ≥εφε∞φε. ╧ε²≥ε∞≤ ∞√ Φ∞∩ε≡≥Φ≡≤σ∞ ≥εδⁿΩε Ωδα±± java.awt.*, φσεß⌡εΣΦ∞√Θ Σδ  ≡αßε≥√ ± εΩφα∞Φ:

    import java.awt.*;

    ┬ φα°σ∞ ∩≡ΦδεµσφΦΦ ε∩≡σΣσδσφε ≥≡Φ Ωδα±±α - MenuApp, MainFrameWnd Φ MessageBox.

    ╩δα±± MenuApp

    ┬ πδαΓφε∞ Ωδα±±σ ∩≡ΦδεµσφΦ  MenuApp ∞√ ε∩≡σΣσδΦδΦ ≥εδⁿΩε εΣΦφ ∞σ≥εΣ main. ▌≥ε≥ ∞σ≥εΣ ∩εδ≤≈ασ≥ ≤∩≡αΓδσφΦσ ∩≡Φ τα∩≤±Ωσ ∩≡ΦδεµσφΦ .

    ╧σ≡Γ√∞ Σσδε∞ ∞σ≥εΣ main ±ετΣασ≥ εß·σΩ≥ Ωδα±±α MainFrameWnd, ε∩≡σΣσδσφφεπε Γ φα°σ∞ ∩≡ΦδεµσφΦΦ:

    MainFrameWnd frame = 
      new MainFrameWnd("MenuApp");

    ▌≥ε≥ Ωδα±±, ±ετΣαφφ√Θ φα ßατσ Ωδα±±α Frame, ε∩≡σΣσδ σ≥ ∩εΓσΣσφΦσ πδαΓφεπε εΩφα φα°σπε ∩≡ΦδεµσφΦ .

    ═α Γ≥ε≡ε∞ °απσ ∞σ≥εΣ init φα±≥≡αΦΓασ≥ ≡ατ∞σ≡√ πδαΓφεπε εΩφα ± ≤≈σ≥ε∞ ≡ατ∞σ≡εΓ Γφσ°φσΘ ≡α∞ΩΦ Φ ταπεδεΓΩα εΩφα:

    frame.setSize(frame.getInsets().left +
      frame.getInsets().right  + 320,
      frame.getInsets().top  +
      frame.getInsets().bottom + 240);

    ╧εδ  left Φ right εß·σΩ≥α Ωδα±±α Insets, ±±√δΩ≤ φα Ωε≥ε≡√Θ ΓετΓ≡α∙ασ≥ ∞σ≥εΣ getInsets, ±εΣσ≡µα≥ °Φ≡Φφ≤ δσΓεΘ Φ ∩≡αΓεΘ ≈α±≥Φ ≡α∞ΩΦ εΩφα, ±εε≥Γσ≥±≥Γσφφε. ╧εδσ top ±εΣσ≡µΦ≥ Γ√±ε≥≤ Γσ≡⌡φσΘ ≈α±≥Φ ≡α∞ΩΦ εΩφα ± ≤≈σ≥ε∞ ταπεδεΓΩα, α ∩εδσ bottom - Γ√±ε≥≤ φΦµφσΘ ≈α±≥Φ ≡α∞ΩΦ εΩφα.

    ─δ  ε≥εß≡αµσφΦ  εΩφα ⌠≡σΘ∞α ∞√ Γ√τ√Γασ∞ ∞σ≥εΣ show, ΩαΩ ²≥ε ∩εΩαταφε φΦµσ:

    frame.show();

    ╩δα±± MainFrameWnd

    ╩δα±± MainFrameWnd ±ετΣαφ φα ßατσ Ωδα±±α Frame:

    class MainFrameWnd extends Frame
    {
      . . .
    }

    ┬ φσ∞ ∞√ ε∩≡σΣσδΦδΦ ≥≡Φ ∩εδ , Ωεφ±≥≡≤Ω≥ε≡, ∞σ≥εΣ√ paint, handleEvent Φ action.

    ╧εδ  Ωδα±±α MainFrameWnd

    ╧εδσ mbMainMenuBar ∩≡σΣφαταφ≈σφε Σδ  ⌡≡αφσφΦ  ±±√δΩΦ φα πδαΓφεσ ∞σφ■ ∩≡ΦδεµσφΦ , ±ετΣαΓασ∞εσ ΩαΩ εß·σΩ≥ Ωδα±±α MenuBar:

    MenuBar mbMainMenuBar;

    ╧εδ  mnFile Φ mnHelp ⌡≡αφ ≥ ±±√δΩΦ φα ∞σφ■ File Φ Help, ±εε≥Γσ≥±≥Γσφφε:

    Menu mnFile;
    Menu mnHelp;

    ─αφφ√σ ∞σφ■ ±ετΣα■≥±  φα ßατσ Ωδα±±α Menu.

    ╩εφ±≥≡≤Ω≥ε≡ Ωδα±±α MainFrameWnd

    ┬ Ωα≈σ±≥Γσ σΣΦφ±≥Γσφφεπε ∩α≡α∞σ≥≡α Ωεφ±≥≡≤Ω≥ε≡≤ Ωδα±±α MainFrameWnd ∩σ≡σΣασ≥±  ταπεδεΓεΩ ±ετΣαΓασ∞επε εΩφα. ┬ ∩σ≡ΓεΘ Φ±∩εδφ σ∞εΘ ±≥≡εΩσ φα° Ωεφ±≥≡≤Ω≥ε≡ Γ√τ√Γασ≥ Ωεφ±≥≡≤Ω≥ε≡ Φτ ßατεΓεπε Ωδα±±α, ∩σ≡σΣαΓα  σ∞≤ ±≥≡εΩ≤ ταπεδεΓΩα ≈σ≡στ ∩α≡α∞σ≥≡:

    public MainFrameWnd(String sTitle)
    {
      super(sTitle);
      . . .
    }

    ─αδσσ Ωεφ±≥≡≤Ω≥ε≡ ε∩≡σΣσδ σ≥ ≡ατ∞σ≡√ εΩφα, Γ√τ√Γα  Σδ  φσπε ∞σ≥εΣ setSize:

    setSize(400, 200);

    ╟α≥σ∞ ∞√ ≤±≥αφαΓδΦΓασ∞ Σδ  φα°σπε εΩφα µσδ≥√Θ ÷Γσ≥ ⌠εφα Φ ≈σ≡φ√Θ ÷Γσ≥ Φτεß≡αµσφΦ :

    setBackground(Color.yellow);
    setForeground(Color.black);

    ╧ε ≤∞εδ≈αφΦ■ Σδ  εΩεφ Ωδα±±α Frame ≤±≥αφαΓδΦΓασ≥±  ≡σµΦ∞ ΣεßαΓδσφΦ  Ωε∞∩εφσφ≥ BorderLayout. ╠√ Φτ∞σφ σ∞ ²≥ε≥ ≡σµΦ∞ φα FlowLayout, Γ√τ√Γα  ∞σ≥εΣ setLayout:

    setLayout(new FlowLayout());

    ─αδσσ Ωεφ±≥≡≤Ω≥ε≡ ∩≡Φ±≥≤∩ασ≥ Ω ⌠ε≡∞Φ≡εΓαφΦ■ πδαΓφεπε ∞σφ■ εΩφα. ▌≥ε ∞σφ■ ±ετΣασ≥±  ΩαΩ εß·σΩ≥ Ωδα±±α MenuBar:

    mbMainMenuBar = new MenuBar();

    ╟α≥σ∞ ∞√ ±ετΣασ∞ Φ φα∩εδφ σ∞ ∞σφ■ "File":

    mnFile = new Menu("File");
    mnFile.add("New");
    mnFile.add("-");
    mnFile.add("Exit");

    ▌≥ε ∞σφ■ ±ετΣασ≥±  φα ßατσ Ωδα±±α Menu. ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ, ≈≥ε ∞σµΣ≤ ±≥≡εΩα∞Φ New Φ File ≡α±∩εδεµσφ ≡ατΣσδΦ≥σδⁿ.

    └φαδεπΦ≈φ√∞ εß≡ατε∞ ∞√ ΣεßαΓδ σ∞ Γ πδαΓφεσ ∞σφ■ Σ≡≤πεσ ∞σφ■ - "Help":

    mnHelp = new Menu("Help"); 
    mnHelp.add("Content");
    mnHelp.add("-");
    mnHelp.add("About");

    ╧ε±δσ ±Γεσπε εΩεφ≈α≥σδⁿφεπε ⌠ε≡∞Φ≡εΓαφΦ  ∞σφ■ "File" Φ "Help" ΣεßαΓδ ■≥±  Γ πδαΓφεσ ∞σφ■ εΩφα mbMainMenuBar:

    mbMainMenuBar.add(mnFile);
    mbMainMenuBar.add(mnHelp);

    ╚, φαΩεφσ÷, ΩεπΣα πδαΓφεσ ∞σφ■ ß≤Σσ≥ ±⌠ε≡∞Φ≡εΓαφε, εφε ∩εΣΩδ■≈ασ≥±  Ω εΩφ≤ Γ√τεΓε∞ ∞σ≥εΣα setMenuBar, ΩαΩ ²≥ε ∩εΩαταφε φΦµσ:

    setMenuBar(mbMainMenuBar);

    ╠σ≥εΣ paint

    ╠σ≥εΣ paint ∩εδ≤≈ασ≥ Γ Ωα≈σ±≥Γσ ∩α≡α∞σ≥≡α ±±√δΩ≤ φα Ωεφ≥σΩ±≥ ε≥εß≡αµσφΦ , ∩≡ΦπεΣφ√Θ Σδ  ≡Φ±εΓαφΦ  Γ φα°σ∞ εΩφσ. ╧εδⁿτ≤ ±ⁿ ²≥Φ∞ Ωεφ≥σΩ±≥ε∞, ∞√ ≤±≥αφαΓδΦΓασ∞ °≡Φ⌠≥ ≥σΩ±≥α Φ ≡Φ±≤σ∞ ≥σΩ±≥εΓ≤■ ±≥≡εΩ≤. ╟α≥σ∞ ∞√ Γ√τ√Γασ∞ ∞σ≥εΣ paint Φτ ßατεΓεπε Ωδα±±α Frame, φα ε±φεΓσ Ωε≥ε≡επε ±ετΣαφ φα° Ωδα±± MainFrameWnd:

    public void paint(Graphics g)
    {
      g.setFont(new Font(
        "Helvetica", Font.PLAIN, 12));
      g.drawString("Frame window", 10, 70);
      super.paint(g);
    }

    ╠σ≥εΣ handleEvent

    ─δ  ≥επε ≈≥εß√ ε∩≡σΣσδΦ≥ⁿ ≡σαΩ÷Φ■ εΩφα φα ∩ε∩√≥Ω≤ ∩εδⁿτεΓα≥σδ  ταΩ≡√≥ⁿ εΩφε ± ∩ε∞ε∙ⁿ■ ε≡παφεΓ ≤∩≡αΓδσφΦ , ≡α±∩εδεµσφφ√⌡ Γ ταπεδεΓΩσ εΩφα, ΦδΦ Σ≡≤πΦ∞ ±∩ε±εßε∞, ∞√ ∩σ≡σε∩≡σΣσδΦδΦ ∞σ≥εΣ handleEvent.

    ╧≡Φ ∩εδ≤≈σφΦΦ ΩεΣα ±εß√≥Φ  Event.WINDOW_DESTROY (≤ΣαδσφΦσ εΩφα) ∞√ ±Ω≡√Γασ∞ εΩφε, Γ√τ√Γα  ∞σ≥εΣ setVisible ± ∩α≡α∞σ≥≡ε∞ false.

    ╟α≥σ∞ ± ∩ε∞ε∙ⁿ■ ±≥α≥Φ≈σ±Ωεπε ∞σ≥εΣα exit Ωδα±±α System ∞√ ταΓσ≡°ασ∞ ≡αßε≥≤ Φφ≥σ≡∩≡σ≥α≥ε≡α:

    public boolean handleEvent(Event evt)
    {
      if(evt.id == Event.WINDOW_DESTROY)
      {
        setVisible(false);
        System.exit(0);
        return true;
      }
      else
        return super.handleEvent(evt);
    }

    ╠σ≥εΣ action

    ▌≥ε≥ ∞σ≥εΣ εß≡αßα≥√Γασ≥ ±εß√≥Φ , ΓετφΦΩα■∙Φσ ∩≡Φ Γ√ßε≡σ ±≥≡εΩα Φτ ∞σφ■.

    ┬ φα≈αδσ ±ΓεσΘ ≡αßε≥√ ∞σ≥εΣ action ∩≡εΓσ≡ σ≥, ΣσΘ±≥ΓΦ≥σδⁿφε δΦ ±εß√≥Φσ Γ√τΓαφε ∞σφ■:

    MenuItem mnItem;
    if(evt.target instanceof MenuItem)
    {
      . . .
    }
    return false;

    ┼±δΦ ²≥ε ≥αΩ, Γ ∩εδσ mnItem ±ε⌡≡αφ σ≥±  ±±√δΩα φα ²δσ∞σφ≥ ∞σφ■, Γ√τΓαΓ°ΦΘ ±εß√≥Φσ:

    mnItem = (MenuItem)evt.target;

    ╥σ∞ φσ ∞σφσσ, Σδ  ε∩≡σΣσδσφΦ  ±≥≡εΩΦ, Γ√ß≡αφφεΘ ∩εδⁿτεΓα≥σδσ∞, φα∞ Σε±≥α≥ε≈φε ∩≡εαφαδΦτΦ≡εΓα≥ⁿ Γ≥ε≡εΘ ∩α≡α∞σ≥≡ ∞σ≥εΣα action:

    if(obj.equals("Exit"))
    {
      System.exit(0);
    }
    else if(obj.equals("New"))
    {
      MessageBox mbox;
      mbox = new MessageBox(
        "Item New selected",
        this, "Dialog from Frame", true);
      mbox.show();
    }
    else if(obj.equals("Content"))
    {
      . . .
    }
    else if(obj.equals("About"))
    {
      . . .
    }

    ┬ Σαφφε∞ ±δ≤≈ασ Γ≥ε≡εΘ ∩α≡α∞σ≥≡ ∞σ≥εΣα action ß≤Σσ≥ ∩≡σΣ±≥αΓδ ≥ⁿ ±εßεΘ ±±√δΩ≤ φα ±≥≡εΩ≤, Γ√ß≡αφφ≤■ Φτ ∞σφ■, ∩ε²≥ε∞≤ Σδ  ε∩≡σΣσδσφΦ  Γ√ß≡αφφεΘ ±≥≡εΩΦ ∞√ ∞εµσ∞ Γ√∩εδφΦ≥ⁿ ∩≡ε±≥εσ ±≡αΓφσφΦσ ∞σ≥εΣε∞ equals.

    ┼±δΦ ∩εδⁿτεΓα≥σδⁿ Γ√ß≡αδ Φτ ∞σφ■ File ±≥≡εΩ≤ Exit, ∞√ Γ√τ√Γασ∞ ∞σ≥εΣ System.exit, ∩≡σΣφατφα≈σφφ√Θ Σδ  ταΓσ≡°σφΦ  ≡αßε≥√ ΓΦ≡≥≤αδⁿφεΘ ∞α°Φφ√ Java.

    ┬ ≥ε∞ ±δ≤≈ασ ΩεπΣα ∩εδⁿτεΓα≥σδⁿ Γ√ßΦ≡ασ≥ δ■ß≤■ Σ≡≤π≤■ ±≥≡εΩ≤ Φτ ∞σφ■, ∞σ≥εΣ action ±ετΣασ≥ ΣΦαδεπεΓ≤■ ∩αφσδⁿ φα ßατσ ε∩≡σΣσδσφφεπε φα∞Φ Ωδα±±α MessageBox. ┬ ²≥εΘ ΣΦαδεπεΓεΘ ∩αφσδΦ ε≥εß≡αµασ≥  φατΓαφΦσ Γ√ß≡αφφεΘ ±≥≡εΩΦ ∞σφ■.

    ╟α∞σ≥Φ∞, ≈≥ε ±≡ατ≤ ∩ε±δσ ±ετΣαφΦ  Ωεφ±≥≡≤Ω≥ε≡ε∞ ΣΦαδεπεΓα  ∩αφσδⁿ φσ ∩ε Γδ σ≥±  φα ²Ω≡αφσ. ╠√ ε≥εß≡αµασ∞ σσ, Γ√τ√Γα  ∞σ≥εΣ show.

    ╩δα±± MessageBox

    ─δ  ε≥εß≡αµσφΦ  φατΓαφΦΘ Γ√ß≡αφφ√⌡ ±≥≡εΩ ∞σφ■ ∞√ ±ετΣασ∞ ΣΦαδεπεΓ≤■ ∩αφσδⁿ, ε∩≡σΣσδΦΓ ±ΓεΘ Ωδα±± MessageBox φα ßατσ Ωδα±±α Dialog, ΩαΩ ²≥ε ∩εΩαταφε φΦµσ:

    class MessageBox extends Dialog
    {
      . . .
    }

    ┬ Ωδα±±σ MessageBox σ±≥ⁿ ΣΓα ∩εδ , Ωεφ±≥≡≤Ω≥ε≡, ∞σ≥εΣ√ handleEvent Φ action.

    ╧εδ  Ωδα±±α MessageBox

    ┬φ≤≥≡Φ ΣΦαδεπεΓεΘ ∩αφσδΦ ∞√ ≡α±∩εδεµΦδΦ ≥σΩ±≥εΓεσ ∩εδσ Ωδα±±α Label, ∩≡σΣφατφα≈σφφεσ Σδ  ε≥εß≡αµσφΦ  ±εεß∙σφΦ , Φ Ωφε∩Ω≤ ± φαΣ∩Φ±ⁿ■ OK, ± ∩ε∞ε∙ⁿ■ Ωε≥ε≡εΘ ∞εµφε ταΓσ≡°Φ≥ⁿ ≡αßε≥≤ ΣΦαδεπεΓεΘ ∩αφσδΦ.

    ╤±√δΩα φα ≥σΩ±≥εΓεσ ∩εδσ ⌡≡αφΦ≥±  Γ ∩εδσ lbMsg, φα Ωφε∩Ω≤ - Γ ∩εδσ btnOK.

    ╩εφ±≥≡≤Ω≥ε≡ Ωδα±±α MessageBox

    ═α° Ωεφ±≥≡≤Ω≥ε≡ ±ετΣασ≥ ΣΦαδεπεΓ≤■ ∩αφσδⁿ ± ταΣαφφ√∞ ±εεß∙σφΦσ∞ Γφ≤≥≡Φ φσσ. ╤±√δΩα φα ±≥≡εΩ≤ ±εεß∙σφΦ  ∩σ≡σΣασ≥±  Ωεφ±≥≡≤Ω≥ε≡≤ ≈σ≡στ ∩σ≡Γ√Θ ∩α≡α∞σ≥≡. ╬±≥αδⁿφ√σ ∩α≡α∞σ≥≡√ Φ±∩εδⁿτ≤■≥±  Ωεφ±≥≡≤Ω≥ε≡ε∞ ßατεΓεπε Ωδα±±α Dialog Σδ  ±ετΣαφΦ  ΣΦαδεπεΓεΘ ∩αφσδΦ:

    super(parent, sTitle, modal);

    ╧ε±δσ Γ√τεΓα Ωεφ±≥≡≤Ω≥ε≡α Φτ ßατεΓεπε Ωδα±±α φα° Ωεφ±≥≡≤Ω≥ε≡ ≤±≥αφαΓδΦΓασ≥ ≡ατ∞σ≡√ εΩφα ±ετΣαφφεΘ ΣΦαδεπεΓεΘ ∩αφσδΦ, Γ√τ√Γα  ∞σ≥εΣ resize:

    resize(200, 100);

    ╬≥∞σφ   ≤±≥αφεΓδσφφ√Θ ∩ε ≤∞εδ≈αφΦ■ ≡σµΦ∞ ≡ατ∞σ∙σφΦ  Ωε∞∩εφσφ≥ BorderLayout, Ωεφ±≥≡≤Ω≥ε≡ ≤±≥αφαΓδΦΓασ≥ ≡σµΦ∞ GridLayout:

    setLayout(new GridLayout(2, 1));

    ╬Ωφε ΣΦαδεπεΓεΘ ∩αφσδΦ ∩≡Φ ²≥ε∞ ≡ατΣσδ σ≥±  φα ΣΓσ ≈α±≥Φ ∩ε πε≡Φτεφ≥αδΦ. ┬ Γσ≡⌡φ■■ ≈α±≥ⁿ ΣεßαΓδ σ≥±  ≥σΩ±≥εΓεσ ∩εδσ Σδ  ε≥εß≡αµσφΦ  ±εεß∙σφΦ , Γ φΦµφ■■ - Ωφε∩Ωα OK:

    lbMsg = new Label(sMsg, Label.CENTER);
    add(lbMsg);
    btnOK = new Button("OK");
    add(btnOK);

    ╠σ≥εΣ handleEvent Ωδα±±α MessageBox

    ╩επΣα ∩εδⁿτεΓα≥σδⁿ ∩√≥ασ≥±  ταΩ≡√≥ⁿ εΩφε ΣΦαδεπεΓεΘ ∩αφσδΦ, φα∩≡Φ∞σ≡, ±ΣσδαΓ ΣΓεΘφεΘ ∙σδ≈εΩ δσΓεΘ ΩδαΓΦ°σΘ ∞√°Φ ∩ε ±Φ±≥σ∞φε∞≤ ∞σφ■ ΦδΦ εΣΦφε≈φ√Θ ∙σδ≈εΩ ∩ε Ωφε∩Ωσ ≤ΣαδσφΦ  εΩφα, ΓετφΦΩασ≥ ±εß√≥Φσ Event.WINDOW_DESTROY. ╠√ σπε εß≡αßα≥√Γασ∞ ±δσΣ≤■∙Φ∞ εß≡ατε∞:

    if(evt.id == Event.WINDOW_DESTROY)
    {
      dispose();
      return true;
    }
    else
      return super.handleEvent(evt);

    ┬√τ√Γα  ∞σ≥εΣ dispose, ∞√ ≤Σαδ σ∞ εΩφε ΣΦαδεπεΓεΘ ∩αφσδΦ Φ ε±ΓεßεµΣασ∞ Γ±σ ±Γ ταφφ√σ ± φΦ∞ ≡σ±≤≡±√.

    ╠σ≥εΣ action Ωδα±±α MessageBox

    ┼±δΦ ∩εδⁿτεΓα≥σδⁿ φαµΦ∞ασ≥ Ωφε∩Ω≤ OK, ≡α±∩εδεµσφφ≤■ Γ εΩφσ ΣΦαδεπεΓεΘ ∩αφσδΦ, ∞σ≥εΣ action Γ√τ√Γασ≥ Σδ  ∩αφσδΦ ∞σ≥εΣ dispose, ≤Σαδ   ²≥≤ ∩αφσδⁿ ± ²Ω≡αφα Φ Φτ ∩α∞ ≥Φ:

    if(evt.target.equals(btnOK))
    {
      dispose();
    }


Java | ╧≡εΣ≤Ω≥√ Φ ≡σ°σφΦ  | ╥σ⌡φεδεπΦΦ | ╤σ≡ΓΦ± Φ εß≤≈σφΦσ
╬ Ωε∞∩αφΦΦ | ╧α≡≥φσ≡√ | ═εΓε±≥Φ | ╧εΦ±Ω
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content